@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u00`08 000ȱ0ȱ0ȱ0009LM90101ia 1 1iT}110 001P0X00l U}01S4WA1WxS3WA{1WxA1WS1E;WELCOME TO THE SNAPSHOT HD;PROFESSIONAL PROGRAMMING UTILITY.;LET'S SNAP OVER TO SNAPSHV}OT #3.;HERE WE ARE IN SNAPSHOT #3.;ENOUGH OF THIS DEMO,LET'S GO BACK!111Ҍҩ111` W} ҍ42 12:3ӠԠԠΠϠ ҍЭ42 `HHA2 ́2&́2͂2X}Ahh2 2` hh 2 2L2 2HH``J䅳䅲 2 J`l` 2`Y}%H$H`a23z`AZi`ɀ0`ɀ)`3 !33 !3`HJJJJ ,3h)  0i6 2`hK3hL3K3L3 3LB3L3HK3HZ}`(Px@h0X HpZ }4 ZZL4]^ZɛD 4Z) ` L3i@L38 $Z [}^UcU(ȱ^] 34^^_`cRUTT 4^] ^`TXhi(^Yii_^h_i^hXi^\}Yi_^(U^]^eU^_i_`T Xy`3^Yya3_^eU^_i_`}~ BHILV44]}4444`<4454`SH)Ӡ h`SH)Ӡ h`SH)^}Ӡ h`SH)Ӡ h`HH55555555Ȍ5 25hh`56506565_}6661656666656 2 ɛ~ 2 2`Ę~ 2й7606`}6q6i6166r6j6266l6366m6&6666 246 2467676`0666166626663a}666`06 67716 72677736777 `06N7Y716O7Z726Q7Hb}7T736R7I7U7Ȣ0`067}7167~7267367` 777͞7 7c}77> 2 2ɛ4~0:欏7Ȍ7778 2Ӭ7̩~ 2Ώ7𾩛7ș770671626736 67 d} ٥Ԧ`I`I `I@`I`ө<`8ө өө`i```I`I`Ie}`I``&9'9(9&9 /9 8L9.9 -9 ,9 +9 *9 )9(9'9(98f}`` :3[-More-] 2 :3~~~~~~~~~`M99 :3}ҭ The Snapshot HD ProfessionalProgramming Utility MUST be loaded ig}nfirst!l 0ore-] 2 :3~~~~~~~~~`M99 :3}ҭ The Snapshot HD ProfessionalProgramming Utility MUST be loaded i10 ;20 ;30 .OPT NO LIST40 ;50 ;SAVE#D:RELOC>DEMO.M6560 ;70 ;..80 ;LIST#D:RELOC>DEMO.LST90 ;0100 ;0110 ;0120 i};ASM,,#D:RELOC>DEMO.COM0130 JOHN = $06FE0140 ;0150 *= $30000160 .INCLUDE #D:SNAPSHOT>SYSLIB.M650170 G.START01 j}80 LDA #$600190 STA G.START0200 LDA JOHN+10210 STA $010220 LDA JOHN0230 SEC 0240 SBC #$09 k} ;POINT TO 1ST BYTE OF SNAPSHOT'S VECTOR TABLE. THE FIRST BYTE IS A FLAG.0250 STA $000260 BCS COPY.SNAP.TABLE0270 l} DEC $010280 COPY.SNAP.TABLE0290 LDA $000300 LDX $010310 STA SNAP.TABLE0320 STX SNAP.TABLE+10330 C. m}S.T.B10340 LDY #10350 LDA ($00),Y0360 STA SNAP.TABLE+20370 INY 0380 LDA ($00),Y0390 STA SNAP.TA n}BLE+30400 C.S.T.B20410 INY 0420 LDA ($00),Y0430 STA SNAP.TABLE+40440 INY 0450 LDA ($00),Y0460 o}STA SNAP.TABLE+50470 ;0480 LDA #00490 TAY 0500 TAX 0510 LDA SNAP.TABLE+20520 STA $000530 LDA S p}NAP.TABLE+30540 STA $010550 BNE COPY.P.BUFFER0560 JMP MAJOR.ERROR0570 ;Now to calculate the correct addresses q},0580 ;and place them into our snapshot program buffer before copying it0590 ;to snapshot's internal program buffer.0600 r} LDA SNAP.TABLE+30610 STA P.BUFFER+70620 STA $01 ;HIGH BYTE FIRST0630 LDA SNAP.TABLE+20640 STA P.BU s}FFER+60650 .LOCAL 0660 CLC 0670 ADC #TB2-T.BUFFER0680 STA $000690 BCC CALC.B00700 INC $010710 t}CALC.B00720 LDA $000730 STA MY.TB20740 LDA $010750 STA MY.TB2+10760 CLC 0770 LDA $000780 A u}DC #TB3-TB20790 STA $000800 BCC CALC.B10810 INC $010820 CALC.B1 LDA $000830 STA MY.TB30840 LDA $01 v}0850 STA MY.TB3+10860 @0870 COPY.P.BUFFER0880 LDA P.BUFFER,Y0890 STA ($00),Y0900 INY 0910 CPY #P.BU w}FFER.LENGTH+10920 BNE COPY.P.BUFFER0930 ;0940 LDA SNAP.TABLE+40950 STA $000960 LDA SNAP.TABLE+50970 x} STA $010980 LDY #00990 COPY.T.BUFFER1000 LDA T.BUFFER,Y1010 STA ($00),Y1020 INY 1030 CPY #T.BUFFER y}.LENGTH+11040 BNE COPY.T.BUFFER1050 ;1060 LDY #801070 LDX #01080 COPY.TEXT1090 LDA TEXT,X1100 CMP z}#$FF1110 BEQ EXIT1120 STA (88),Y ; SAVMSC1130 INX 1140 INY 1150 BNE COPY.TEXT1160 EXIT1170 LD {}A CH1180 CMP #2551190 BEQ EXIT1200 LDA #2551210 STA CH1220 LDY #01230 LDA SNAP.TABLE1240 S |}TA $001250 LDA SNAP.TABLE+11260 STA $011270 LDA #11280 STA ($00),Y1290 JMP ($0A) ; RTS1300 TEX }}T1310 .SBYTE "** **",$FF1320 SNAP.TABLE *= *+61330 P.BUFFER1340 .BYTE "S4"1350 ~}.BYTE "W",0,301360 .BYTE "A"1370 MY.T.BUFFER1380 .WORD T.BUFFER1390 .BYTE "W",0,1201400 .BYTE "S3"1410 } .BYTE "W",0,301420 .BYTE "A"1430 MY.TB21440 .WORD TB21450 .BYTE "W",0,1201460 .BYTE "A"1470 MY.TB3 }1480 .WORD TB31490 .BYTE "W",0,301500 .BYTE "S1"1510 .BYTE "E"1520 P.BUFFER.LENGTH = *-P.BUFFER1530 T.BU }FFER1540 .BYTE ";WELCOME TO THE SNAPSHOT HD",EOL,";PROFESSIONAL PROGRAMMING UTILITY.",EOL1550 .BYTE ";LET'S SNAP OV }ER TO SNAPSHOT #3.",EOL,$FF1560 TB21570 .BYTE ";HERE WE ARE IN SNAPSHOT #3.",EOL,$FF1580 TB31590 .BYTE ";ENOUGH O }F THIS DEMO,LET'S GO BACK!",EOL,$FF1600 ;1610 T.BUFFER.LENGTH = *-T.BUFFER1620 HERE1630 .INCLUDE #D:>SNAPSHOT>MACROS. }M651640 MAJOR.ERROR1650 JSR PRINTSI1660 .BYTE "}",EOL,EOL1670 .BYTE "ҭ The Snapshot HD Professional",EO }L1680 .BYTE "Programming Utility MUST be loaded in",EOL1690 .BYTE "first!",EOL,$FF1700 JMP ($0A)1710 *= }$02E21720 .WORD G.START Utility MUST be loaded in",EOL1690 .BYTE "first!",EOL,$FF1700 JMP ($0A)1710 *=  X;X;EI(X;2X;SAVE#D:RELOC>DEMO.M65<X;FX;..PX;LIST#D:RELOC>DEMO.LSTZX;dX;nX;xX;ASM,,#D:RELOC>DE}MO.COMyX;-X;This demo will just take you for a tour.X; JOHNX;0>D:SNAPSHOT>SYSLIB.M65 G.START}Q>` PG.START QJOHNP QJOHN;PS> ;;POINT TO 1ST BYTE OF SNAPSHOT'S VECTOR TABLE. THE FIRST BYTE IS A FL}AG.PECOPY.SNAP.TABLE""COPY.SNAP.TABLE,Q6$@PSNAP.TABLEJ&SNAP.TABLET C.S.T.B1^%>hQ@}7rPSNAP.TABLE|3Q@7PSNAP.TABLE C.S.T.B23Q@7PSNAP.TABLE3Q@7PSNAP.TABLEX};Q>?>QSNAP.TABLEPQSNAP.TABLE&P0HCOPY.P.BUFFER:!MAJOR.ERRORD,X;Now to calculate the c}orrect addresses,NFX;and place them into our snapshot program buffer before copying itX+X;to snapshot's internal program bu}ffer.bQSNAP.TABLElPP.BUFFERvP;;HIGH BYTE FIRSTQSNAP.TABLEPP.BUFFER,O>TB2T.BUFFER}P DCALC.B0# CALC.B0Q PMY.TB2QPMY.TB2, QO>TB3TB2 P* DCALC.B14#>CAL}C.B1QH PMY.TB3RQ\PMY.TB3f@pCOPY.P.BUFFERzQP.BUFFER8P@73)>P.BUFFER.LENGTHHCOPY.P.BUF}FERX;QSNAP.TABLEPQSNAP.TABLEP%>COPY.T.BUFFERQT.BUFFER8P@73)>T.BUFFER.LENG}THHCOPY.T.BUFFER$X;.%>P8$>B COPY.TEXTL QTEXT9VR>` FEXITjP@X7;; SAVMSCt2~3HCOPY.TEXTE}XITQCHR> FEXITQ>PCH%>QSNAP.TABLEPQSNAP.TABLEPQ> P@7!@ :;; RTS}TEXT(, A** **A=2SNAP.TABLE < P.BUFFERF AS4AP AWA==Z AAAdMY.T.BUF}FERn T.BUFFERx AWA==x AS3A AWA== AAA MY.TB2 TB2 AWA==x AAA MY.TB3 TB3 A}WA== AS1A AEAP.BUFFER.LENGTH P.BUFFER T.BUFFERR A;WELCOME TO THE SNAPSHOT HDA=EOL=A;PROFESSIONAL P}ROGRAMMING UTILITY.A=EOL/ A;LET'S SNAP OVER TO SNAPSHOT #3.A=EOL="TB2,+ A;HERE WE ARE IN SNAPSHOT #3.A=EOL=6}TB3@2 A;ENOUGH OF THIS DEMO,LET'S GO BACK!A=EOL=JX;TT.BUFFER.LENGTH T.BUFFER^HEREh>D:>SNAPSHOT>MACROS.M6}5rMAJOR.ERROR| PRINTSI A}A=EOL=EOL0 Aҭ The Snapshot HD ProfessionalA=EOL1 AProgramming Utility MUST }be loaded inA=EOL Afirst!A=EOL=!@ : G.STARTapshot HD ProfessionalA=EOL1 AProgramming Utility MUST B00`08 000ȱ0ȱ0ȱ000L800000000}P0X00l 01S4WC0WPE-D1:>DEMOBAT.BAT1}11Ҍҩ111` ҍg1 m2ӠԠԠΠϠ ҍЭg1 `HHA1 }ʹ1&ʹ1͵1Ahh1 1` hh 1 1L121 1HH``J}䅳䅲 2 J`l` 2`%H$H`az`AZi`ɀ0`ɀ)`E2 T2E2 T2`HJJJJ _2h)  0i6} 1`h~2h2~22 2Lu22H~2H`(Px@h0X HpZ 23}3 ZZL3}]^ZɛD 3Z) ` L3i@L38 $Z ^UcU(ȱ^] ^^_`cRUTT 3^] ^`TXhi(^}Yii_^h_i^hXi^Yi_^(U^]^eU^_i_`T Xy2^Y34y2_^eU^_i_`}}~ BHILV444444`<)4)4`SH)Ӡ h`S}H)Ӡ h`SH)Ӡ h`SH)Ӡ h`HH4444444544Ȍ4} 14hh`*595*5c5'5M525P5B5F5d5(5N535Q5C5G5 2 ɛ~ 1 1`}Ę~ 1йj5c5555d5555e555f555&i5i5 ,2g565 ,2g}5j5j5`c565d565e566f566`c5=6d5>6e5D6I686f5E6J696} `c566d566e56{66f56|66Ȣ0`c566d566e56f5667}` 6666 666> 2 !2ɛ4~0:6Ȍ66 1Ӭ6̩~ 16𾩛6ș}66c56d5ʍe56f5 5ʅ6 ٥Ԧ`I`I `I@`I`ө<`8ө өө`}78i```I`I`I`I``Y8Z8[8Y8 b8 a8 `8 _8 ^8} ]8 \8[8Z8[88`` m2[-More-] 2 m2~~~~~~~~~`88 m2}ҭ The Snapshot HD Professi}onalProgramming Utility MUST be loaded infirst!l 0ore-] 2 m2~~~~~~~~~`88 m2}ҭ The Snapshot HD Professi<10 ;20 ;30 .OPT NO LIST40 ;50 ;SAVE#D:RELOC>DEMO1.M6560 ;70 ;..80 ;LIST#D:RELOC>DEMO1.LST90 ;0100 ;0110 ;012}0 ;ASM,,#D:RELOC>DEMO1.COM0130 JOHN = $06FE0140 ;0150 *= $30000160 .INCLUDE #D:SNAPSHOT>SYSLIB.M650170 G.START}0180 LDA #$600190 STA G.START0200 LDA JOHN+10210 STA $010220 LDA JOHN0230 SEC 0240 SBC #$0}9 ;Point to 1st byte in snapshot's vector table. The first byte is a flag.0250 ;And we copy it.0260 STA $000270 } BCS COPY.SNAP.TABLE0280 DEC $010290 COPY.SNAP.TABLE0300 LDA $000310 LDX $010320 STA SNAP.TABLE0330 } STX SNAP.TABLE+10340 C.S.T.B10350 LDY #10360 LDA ($00),Y0370 STA SNAP.TABLE+20380 INY 0390 LDA ($0}0),Y0400 STA SNAP.TABLE+30410 C.S.T.B20420 INY 0430 LDA ($00),Y0440 STA SNAP.TABLE+40450 INY 0460 } LDA ($00),Y0470 STA SNAP.TABLE+50480 ;0490 LDA SNAP.TABLE+20500 STA $000510 LDA SNAP.TABLE+30520 } STA $010530 BNE COPY.P.BUFFER0540 JMP MAJOR.ERROR0550 ;0560 ;Now to copy the correct addresses,0570 ;and place} them into our snapshot program buffer before copying it0580 ;to snapshot's internal program buffer.0590 ;0600 ;Copy the i}nternal address of the program & text buffer.0610 ;0611 COPY.P.BUFFER0620 LDA SNAP.TABLE+40630 STA P.BUFFER+6064}0 LDA SNAP.TABLE+50650 STA P.BUFFER+70670 LDY #00671 C.P.B.B00680 LDA P.BUFFER,Y0690 STA ($00),Y070}0 INY 0710 CPY #P.BUFFER.LENGTH+10720 BNE C.P.B.B00730 ;0740 LDA SNAP.TABLE+40750 STA $000760 L}DA SNAP.TABLE+50770 STA $010780 LDY #00790 COPY.T.BUFFER0800 LDA T.BUFFER,Y0810 STA ($00),Y0820 INY} 0830 CPY #T.BUFFER.LENGTH+10840 BNE COPY.T.BUFFER0850 ;0860 LDY #800870 LDX #00880 COPY.TEXT0890 }LDA TEXT,X0900 CMP #$FF0910 BEQ EXIT0920 STA (88),Y ; SAVMSC0930 INX 0940 INY 0950 BNE COPY.TE}XT0960 EXIT0970 LDA CH0980 CMP #2550990 BEQ EXIT1000 LDA #2551010 STA CH1020 LDY #01030 ;104}0 ;Now to set Snapshot's internal flag named PROGRAM to any non-zero value. This starts executing1050 ;your snapshot program}.1060 ;1070 LDA SNAP.TABLE1080 STA $001090 LDA SNAP.TABLE+11100 STA $011110 LDA #11120 STA ($0}0),Y1130 JMP ($0A) ;Goto DOS.1140 TEXT1150 .SBYTE "** **",$FF1160 SNAP.TABLE *= *+}61170 ;1180 ;These two buffers are an example of how to program Snapshot HD to execute a batch file.1190 ;1200 P.BUFFER1}210 .BYTE "S4" ;Snap to #41220 .BYTE "W",0,30 ;Wait 1/2 sec1230 .BYTE "C" ;Send $ to CP1240 MY.T.BUFFER125}0 .WORD T.BUFFER1260 .BYTE "E"1270 P.BUFFER.LENGTH = *-P.BUFFER1280 T.BUFFER1290 .BYTE "-D1:>DEMOBAT.BAT",$9B},-11300 ;1310 T.BUFFER.LENGTH = *-T.BUFFER1320 HERE1330 .INCLUDE #D:>SNAPSHOT>MACROS.M651340 MAJOR.ERROR1350 JS}R PRINTSI1360 .BYTE "}",EOL,EOL1370 .BYTE "ҭ The Snapshot HD Professional",EOL1380 .BYTE "Programming Ut}ility MUST be loaded in",EOL1390 .BYTE "first!",EOL,$FF1400 JMP ($0A)1410 *= $02E21420 .WORD G.START Utz X;X;EI(X;2X;SAVE#D:RELOC>DEMO1.M65<X;FX;..PX;LIST#D:RELOC>DEMO1.LSTZX;dX;nX;xX;ASM,,#D:RELOC>}DEMO1.COMX;EX;This demo will send a command directly to the CP in snapshot #4.&X;This command is held in T.BUFFER.X}; JOHNX;0>D:SNAPSHOT>SYSLIB.M65 G.STARTQ>` PG.START QJOHNP QJOHN;PS> ;;Poi}nt to 1st byte in snapshot's vector table. The first byte is a flag."X;And we copy it.,P6ECOPY.SNAP.TABLE@"JC}OPY.SNAP.TABLETQ^$hPSNAP.TABLEr&SNAP.TABLE| C.S.T.B1%>Q@7PSNAP.TABLE3Q@7PSNAP}.TABLE C.S.T.B23Q@7PSNAP.TABLE3Q@7PSNAP.TABLEX;QSNAP.TABLEP&QSNAP.TABLE}0P:HCOPY.P.BUFFERD!MAJOR.ERRORNX;X'X;Now to copy the correct addresses,bFX;and place them into our snapshot }program buffer before copying itl+X;to snapshot's internal program buffer.vX; C.P.B.B0}QP.BUFFER8P@73)>P.BUFFER.LENGTH HC.P.B.B0 X;QSNAP.TABLE P*QSNAP.TABLE4P>%>H}COPY.T.BUFFERRQT.BUFFER8\P@7f3p)>T.BUFFER.LENGTHzHCOPY.T.BUFFERX;%>P$> COPY.TEXT QTEXT9}R> FEXITP@X7;; SAVMSC23HCOPY.TEXTEXITQCHR> FEXITQ>$PCH.%>8X;BcX;Now to se}t Snapshot's internal flag named PROGRAM to any non-zero value. This starts executingLX;your snapshot program.VX;`QSNA}P.TABLEjPtQSNAP.TABLE~PQ>P@7!@ :;;Goto DOS.TEXT, A** **A=}SNAP.TABLE X;\X;These two buffers are an example of how to program Snapshot HD to execute a batch file.X; P.}BUFFER AS4A;;Snap to #4 AWA==;;Wait 1/2 sec ACA;;Send $ to CP MY.T.BUFFER T.BUFFER AEA(P.BUFFER}.LENGTH P.BUFFER2 T.BUFFER< A-D1:>DEMOBAT.BATA==FX;PT.BUFFER.LENGTH T.BUFFERZHEREd>D:>SNAPSHOT>MA}CROS.M65nMAJOR.ERRORx PRINTSI A}A=EOL=EOL0 Aҭ The Snapshot HD ProfessionalA=EOL1 AProgramming Utilit}y MUST be loaded inA=EOL Afirst!A=EOL=!@ : G.STARTapshot HD ProfessionalA=EOL1 AProgramming UtilitI00`08 000ȱ0ȱ0ȱ000L800000000 }P0X00l 01S4WC0WZPE-D1:>DEMOBAT.BAT1 }11Ҍҩ111` ҍg1 m2ӠԠԠΠϠ ҍЭg1 `HHA1 }ʹ1&ʹ1͵1Ahh1 1` hh 1 1L121 1HH``J }䅳䅲 2 J`l` 2`%H$H`az`AZi`ɀ0`ɀ)`E2 T2E2 T2`HJJJJ _2h)  0i6 } 1`h~2h2~22 2Lu22H~2H`(Px@h0X HpZ 23}3 ZZL3 }]^ZɛD 3Z) ` L3i@L38 $Z ^UcU(ȱ^] ^^_`cRUTT 3^] ^`TXhi(^ }Yii_^h_i^hXi^Yi_^(U^]^eU^_i_`T Xy2^Y34y2_^eU^_i_` }}~ BHILV444444`<)4)4`SH)Ӡ h`S }H)Ӡ h`SH)Ӡ h`SH)Ӡ h`HH4444444544Ȍ4 } 14hh`*595*5c5'5M525P5B5F5d5(5N535Q5C5G5 2 ɛ~ 1 1` }Ę~ 1йj5c5555d5555e555f555&i5i5 ,2g565 ,2g }5j5j5`c565d565e566f566`c5=6d5>6e5D6I686f5E6J696 } `c566d566e56{66f56|66Ȣ0`c566d566e56f5667 }` 6666 666> 2 !2ɛ4~0:6Ȍ66 1Ӭ6̩~ 16𾩛6ș }66c56d5ʍe56f5 5ʅ6 ٥Ԧ`I`I `I@`I`ө<`8ө өө` }78i```I`I`I`I``Y8Z8[8Y8 b8 a8 `8 _8 ^8 } ]8 \8[8Z8[88`` m2[-More-] 2 m2~~~~~~~~~`88 m2}ҭ The Snapshot HD Professi }onalProgramming Utility MUST be loaded infirst!l 0ore-] 2 m2~~~~~~~~~`88 m2}ҭ The Snapshot HD Professi <10 ;20 ;30 .OPT NO LIST40 ;50 ;SAVE#D:RELOC>DEMO2.M6560 ;70 ;..80 ;LIST#D:RELOC>DEMO2.LST90 ;0100 ;0110 ;012$}0 ;ASM,,#D:RELOC>DEMO2.COM0121 ;This demo will run a batch file in snap#4, wait 4 seconds, and poke0122 ;764 with a RETURN.$}0130 JOHN = $06FE0140 ;0150 *= $30000160 .INCLUDE #D:SNAPSHOT>SYSLIB.M650170 G.START0180 LDA #$600190 $} STA G.START0200 LDA JOHN+10210 STA $010220 LDA JOHN0230 SEC 0240 SBC #$09 ;Point to 1st byte in$} snapshot's vector table. The first byte is a flag.0250 ;And we copy it.0260 STA $000270 BCS COPY.SNAP.TABLE0280 $} DEC $010290 COPY.SNAP.TABLE0300 LDA $000310 LDX $010320 STA SNAP.TABLE0330 STX SNAP.TABLE+10340 C.S$}.T.B10350 LDY #10360 LDA ($00),Y0370 STA SNAP.TABLE+20380 INY 0390 LDA ($00),Y0400 STA SNAP.TAB$}LE+30410 C.S.T.B20420 INY 0430 LDA ($00),Y0440 STA SNAP.TABLE+40450 INY 0460 LDA ($00),Y0470 S$}TA SNAP.TABLE+50480 ;0490 LDA SNAP.TABLE+20500 STA $000510 LDA SNAP.TABLE+30520 STA $010530 BNE COP$}Y.P.BUFFER0540 JMP MAJOR.ERROR0550 ;0560 ;Now to copy the correct addresses,0570 ;and place them into our snapshot pr$}ogram buffer before copying it0580 ;to snapshot's internal program buffer.0590 ;0600 ;Copy the internal address of the pro$}gram & text buffer.0610 ;0611 COPY.P.BUFFER0620 LDA SNAP.TABLE+40630 STA P.BUFFER+60640 LDA SNAP.TABLE+5065$}0 STA P.BUFFER+70670 LDY #00671 C.P.B.B00680 LDA P.BUFFER,Y0690 STA ($00),Y0700 INY 0710 CPY #P$}.BUFFER.LENGTH+10720 BNE C.P.B.B00730 ;0740 LDA SNAP.TABLE+40750 STA $000760 LDA SNAP.TABLE+50770 S$}TA $010780 LDY #00790 COPY.T.BUFFER0800 LDA T.BUFFER,Y0810 STA ($00),Y0820 INY 0830 CPY #T.BUFFER.L$}ENGTH+10840 BNE COPY.T.BUFFER0850 ;0860 LDY #800870 LDX #00880 COPY.TEXT0890 LDA TEXT,X0900 CMP #$$}FF0910 BEQ EXIT0920 STA (88),Y ; SAVMSC0930 INX 0940 INY 0950 BNE COPY.TEXT0960 EXIT0970 LDA $}CH0980 CMP #2550990 BEQ EXIT1000 LDA #2551010 STA CH1020 LDY #01030 ;1040 ;Now to set Snapshot's i%}nternal flag named PROGRAM to any non-zero value. This starts executing1050 ;your snapshot program.1060 ;1070 LDA SNAP%}.TABLE1080 STA $001090 LDA SNAP.TABLE+11100 STA $011110 LDA #11120 STA ($00),Y1130 JMP ($0A) %};Goto DOS.1140 TEXT1150 .SBYTE "** **",$FF1160 SNAP.TABLE *= *+61170 ;1180 ;These two b%}uffers are an example of how to program Snapshot HD to execute a batch file.1190 ;1200 P.BUFFER1210 .BYTE "S4" ;Snap %}to #41220 .BYTE "W",0,30 ;Wait 1/2 sec1230 .BYTE "C" ;Send $ to CP1240 MY.T.BUFFER1250 .WORD T.BUFFER1251 %} .BYTE "W",2,90 ;Wait 10 SEC1252 .BYTE "P", <764, >764,$9B ;Poke a RETURN.1260 .BYTE "E"1270 P.BUFFER.LENGTH = %}*-P.BUFFER1280 T.BUFFER1290 .BYTE "-D1:>DEMOBAT.BAT",$9B,-11300 ;1310 T.BUFFER.LENGTH = *-T.BUFFER1320 HERE1330 %} .INCLUDE #D:>SNAPSHOT>MACROS.M651340 MAJOR.ERROR1350 JSR PRINTSI1360 .BYTE "}",EOL,EOL1370 .BYTE "ҭ Th%}e Snapshot HD Professional",EOL1380 .BYTE "Programming Utility MUST be loaded in",EOL1390 .BYTE "first!",EOL,$FF14% }00 JMP ($0A)1410 *= $02E21420 .WORD G.START Utility MUST be loaded in",EOL1390 .BYTE "first!",EOL,$FF14$;C X;X;EI(X;2X;SAVE#D:RELOC>DEMO2.M65<X;FX;..PX;LIST#D:RELOC>DEMO2.LSTZX;dX;nX;xX;ASM,,#D:RELOC>) }DEMO2.COMyX;HX;This demo will run a batch file in snap#4, wait 4 seconds, and pokeX;764 with a RETURN.X; JOHN) }X;0>D:SNAPSHOT>SYSLIB.M65 G.STARTQ>` PG.START QJOHNP QJOHN;PS> ;;Point to 1st by) }te in snapshot's vector table. The first byte is a flag.X;And we copy it.P"ECOPY.SNAP.TABLE,"6COPY.SNAP.TAB)}LE@QJ$TPSNAP.TABLE^&SNAP.TABLEh C.S.T.B1r%>|Q@7PSNAP.TABLE3Q@7PSNAP.TABLE )}C.S.T.B23Q@7PSNAP.TABLE3Q@7PSNAP.TABLEX;QSNAP.TABLEPQSNAP.TABLEP&)}HCOPY.P.BUFFER0!MAJOR.ERROR:X;D'X;Now to copy the correct addresses,NFX;and place them into our snapshot program buff)}er before copying itX+X;to snapshot's internal program buffer.bX;l C.P.B.B0QP.BUFFER)}8P@73)>P.BUFFER.LENGTH HC.P.B.B0X;QSNAP.TABLE PQSNAP.TABLE P*%>4COPY.T.BUFF)}ER>QT.BUFFER8HP@7R3\)>T.BUFFER.LENGTHfHCOPY.T.BUFFERpX;z%>P$> COPY.TEXT QTEXT9R> FE)}XITP@X7;; SAVMSC23HCOPY.TEXTEXITQCHR> FEXITQ>PCH%>$X;.cX;Now to set Snapshot's)} internal flag named PROGRAM to any non-zero value. This starts executing8X;your snapshot program.BX;LQSNAP.TABLEVP)}`QSNAP.TABLEjPtQ>~P@7!@ :;;Goto DOS.TEXT, A** **A=SNAP.TABLE)} X;\X;These two buffers are an example of how to program Snapshot HD to execute a batch file.X; P.BUFFER A)}S4A;;Snap to #4 AWA==;;Wait 1/2 sec ACA;;Send $ to CPMY.T.BUFFER T.BUFFER  AWA==Z;;Wait 10 SEC% A)}PA=4=5=;;Poke a RETURN. AEA(P.BUFFER.LENGTH P.BUFFER2 T.BUFFER< A-D1:>DEMOBAT.BATA==FX;PT.B)}UFFER.LENGTH T.BUFFERZHEREd>D:>SNAPSHOT>MACROS.M65nMAJOR.ERRORx PRINTSI A}A=EOL=EOL0 Aҭ The Sn)}apshot HD ProfessionalA=EOL1 AProgramming Utility MUST be loaded inA=EOL Afirst!A=EOL=!@ : G.START(}00`08 000ȱ0ȱ0ȱ000Ll80P0X0-}0l 01S1Eﮛ 1 1 1Ҍҩ-} 1 1 1` ҍS1 Y2ӠԠԠΠϠ ҍЭS1 `HHA1 ͠1&͠1- }͡1Ahh1 1` hh12 1 1L1 1HH``J䅳䅲 1 -!}J`l` 2`%H$H`az`AZi`ɀ0`ɀ)`12 @212 @2`HJJJJ K2h)  0i6 1`hj2hk2j2k2-"} 2La2k2Hj2H`(Px@h0X23 HpZ }3 ZZL3]^ZɛD 3Z) -#}` L2i@L28 $Z ^UcU(ȱ^] ^^_`cRUTT 3^] ^`TXhi(^Yii_^h_-$}i^hXi^Yi_^(U^]^eU^_i_`34T Xy2^Yy2_^eU^_i_`}~ B-%}HILV444444`<44`SH)Ӡ h`SH)Ӡ h-&}`SH)Ӡ h`SH)Ӡ h`HH4454444444Ȍ4 14hh`-'}5%55O55955<5.525P55:55=5/535 1 ɛ~ 1 1`Ę~ 1-(}йV5O5555P5555Q555R555&U556U5 2S5 2S5V5V5`O5-)}55P555Q555R555`O5)6P5*6Q50656$6R51666%6 `O5m-*}6x6P5n6y6Q5p6g6s6R5q6h6t6Ȣ0`O566P566Q5667R56` -+} 666ͽ6 666> 1 2ɛ4~0:欮6Ȍ66 1Ӭ6̩~ 1ή6𾩛6ș66O56P5Q5-,}6R5 56 ٥Ԧ`I`I `I@`I`ө<`8ө 7k8өө`i```--}I`I`I`I``E8F8G8E8 N8 M8 L8 K8 J8 I8 H8-.}G8F8G88`` Y2[-More-] 1 Y2~~~~~~~~~`l88 Y2}ҭ The Snapshot HD ProfessionalProgramming Uti-/}lity MUST be loaded infirst!l 0ore-] 1 Y2~~~~~~~~~`l88 Y2}ҭ The Snapshot HD ProfessionalProgramming Uti,(10 ;20 ;30 .OPT NO LIST40 ;50 ;SAVE#D:RELOC>DEMO3.M6560 ;70 ;..80 ;LIST#D:RELOC>DEMO3.LST90 ;0100 ;0110 ;01211}0 ;ASM,,#D:RELOC>DEMO3.COM0130 ;0140 ;This demo shows you how to snap to snapshot #1.0150 ;0160 JOHN = $06FE0170 ;018012} *= $30000190 .INCLUDE #D:SNAPSHOT>SYSLIB.M650200 G.START0210 LDA #$600220 STA G.START0230 LDA JOHN13}+10240 STA $010250 LDA JOHN0260 SEC 0270 SBC #$09 ;Point to 1st byte in snapshot's vector table. The f14}irst byte is a flag.0280 ;And we copy it.0290 STA $000300 BCS COPY.SNAP.TABLE0310 DEC $010320 COPY.SNAP.TABL15}E0330 LDA $000340 LDX $010350 STA SNAP.TABLE0360 STX SNAP.TABLE+10370 C.S.T.B10380 LDY #10390 16}LDA ($00),Y0400 STA SNAP.TABLE+20410 INY 0420 LDA ($00),Y0430 STA SNAP.TABLE+30440 C.S.T.B20450 INY17} 0460 LDA ($00),Y0470 STA SNAP.TABLE+40480 INY 0490 LDA ($00),Y0500 STA SNAP.TABLE+50510 ;0520 18} LDA SNAP.TABLE+20530 STA $000540 LDA SNAP.TABLE+30550 STA $010560 BNE COPY.P.BUFFER0570 JMP MAJOR.E19}RROR0580 COPY.P.BUFFER0590 LDY #00600 C.P.B.B00610 LDA P.BUFFER,Y0620 STA ($00),Y0630 INY 0640 CPY1:} #P.BUFFER.LENGTH+10650 BNE C.P.B.B00660 ;0670 ;0680 LDY #800690 LDX #00700 COPY.TEXT0710 LDA TEXT,X01;}720 CMP #$FF0730 BEQ EXIT0740 STA (88),Y ; SAVMSC0750 INX 0760 INY 0770 BNE COPY.TEXT0780 EXIT1<}0790 LDA CH0800 CMP #2550810 BEQ EXIT0820 LDA #2550830 STA CH0840 LDY #00850 ;0860 ;Now to se1=}t Snapshot's internal flag named PROGRAM to any non-zero value. This starts executing0870 ;your snapshot program.0880 ;0891>}0 LDA SNAP.TABLE0900 STA $000910 LDA SNAP.TABLE+10920 STA $010930 LDA #10940 STA ($00),Y0950 1?} JMP ($0A) ;Goto DOS.0960 TEXT0970 .SBYTE "** **",$FF0980 SNAP.TABLE *= *+60990 ;1001@}0 ;This program buffer is an example of how to program Snapshot HD to snap to a certain snapshot.1010 ;1020 P.BUFFER1030 1A} .BYTE "S1" ;Snap to #11040 .BYTE "E"1050 P.BUFFER.LENGTH = *-P.BUFFER1060 T.BUFFER1070 .BYTE "1B}",$9B,$FF1080 ;1090 T.BUFFER.LENGTH = *-T.BUFFER1100 HERE1110 .INCLUDE #D:>SNAPSHOT>MACRO1C}S.M651120 MAJOR.ERROR1130 JSR PRINTSI1140 .BYTE "}",EOL,EOL1150 .BYTE "ҭ The Snapshot HD Professional",1D}EOL1160 .BYTE "Programming Utility MUST be loaded in",EOL1170 .BYTE "first!",EOL,$FF1180 JMP ($0A)1190 *=1E} $02E21200 .WORD G.START Utility MUST be loaded in",EOL1170 .BYTE "first!",EOL,$FF1180 JMP ($0A)1190 *=0 X;X;EI(X;2X;SAVE#D:RELOC>DEMO3.M65<X;FX;..PX;LIST#D:RELOC>DEMO3.LSTZX;dX;nX;xX;ASM,,#D:RELOC>5G}DEMO3.COMX;4X;This demo shows you how to snap to snapshot #1.X; JOHNX;0>D:SNAPSHOT>SYSLIB.M65 5H}G.STARTQ>` PG.START QJOHNP QJOHN;PS> ;;Point to 1st byte in snapshot's vector table. The first by5I}te is a flag.X;And we copy it."P,ECOPY.SNAP.TABLE6"@COPY.SNAP.TABLEJQT$^PSNAP.TABLEh&SNAP.TABL5J}Er C.S.T.B1|%>Q@7PSNAP.TABLE3Q@7PSNAP.TABLE C.S.T.B23Q@7PSNAP.TABLE35K}Q@7PSNAP.TABLEX;QSNAP.TABLEPQSNAP.TABLE&P0HCOPY.P.BUFFER:!MAJOR.ERRORDCOPY.P.B5L}UFFERN%>X C.P.B.B0bQP.BUFFER8lP@7v3)>P.BUFFER.LENGTH HC.P.B.B0X;X;%>P$> COPY.TEXT5M} QTEXT9R> FEXITP@X7;; SAVMSC23HCOPY.TEXT EXITQCH R>* FEXIT4Q>>PCHH%>RX;\cX5N};Now to set Snapshot's internal flag named PROGRAM to any non-zero value. This starts executingfX;your snapshot program.p5O}X;zQSNAP.TABLEPQSNAP.TABLEPQ>P@7!@ :;;Goto DOS.TEXT, A** 5P} **A=SNAP.TABLE X;cX;This program buffer is an example of how to program Snapshot HD to snap to a certain sna5Q}pshot.X; P.BUFFER AS1A;;Snap to #1 AEAP.BUFFER.LENGTH P.BUFFER$ T.BUFFER.8 A5R}A==8X;BT.BUFFER.LENGTH T.BUFFERLHEREV>D:>SNAPSHOT>MACROS.M65`MAJOR.ERRORj PRINTSI5S}t A}A=EOL=EOL~0 Aҭ The Snapshot HD ProfessionalA=EOL1 AProgramming Utility MUST be loaded inA=EOL Afirs5T}t!A=EOL=!@ : G.STARTapshot HD ProfessionalA=EOL1 AProgramming Utility MUST be loaded inA=EOL Afirs4&00`08 000ȱ0ȱ0ȱ000L800000000$9V}P0X00l 01S4WC0WZS1ED3:>UTT>UNARC D1:DEMOARC.9W}ARC D1:>,1-1.1Ҍҩ,1-1.1` ҍv1 |2ӠԠԠΠϠ ҍЭv19X} `HHA1 1&11Ahh1 1` hh12 1 1L1 1HH`9Y}`J䅳䅲 2 J`l` '2`%H$H`az`AZi`ɀ0`ɀ)`T2 c2T2 c2`HJJJJ 9Z}n2h)  0i6 1`h2h222 2L22H2H`(Px@h0X23 HpZ }39[} ZZL3]^ZɛD 3Z) ` L3i@L38 $Z ^UcU(ȱ^] ^^_`cRUTT 3^] 9\}^`TXhi(^Yii_^h_i^hXi^Yi_^(U^]^eU^_i_34`T Xy2^Yy2_9]}^eU^_i_`}~ BHILV%4'4&4'4'4%4`<8484`SH)Ӡ h9^}`SH)Ӡ h`SH)Ӡ h`SH)Ӡ h`HH445444449_}44Ȍ4 14hh`95H595r565\5A5_5Q5U5s575]5B5`5R5V5 2 ɛ~ 19`} 1`Ę~ 1йy5r5555s5555t555u555&x5Ȼ56x59a} ;2v5 ;2v5y5y5`r56 6s56 6t566u566`r5L6s5M6t5S6X6G6u5T6Y69b}H6 `r566s566t5666u5666Ȣ0`r566s566t5ŷ676u9c}56` 6666 666> 2 02ɛ4~0:6Ȍ66 1Ӭ6̩~ 19d}6𾩛6ș66эr56s5ٍt56u5 5م6 ٥Ԧ`I`I `I@`I`ө<`8ө 9e}78өө`i```I`I`I`I``h8i8j8h8 q8 p8 o8 9f}n8 m8 l8 k8j8i8j88`` |2[-More-] 2 |2~~~~~~~~~`88 |2}ҭ The Snaps9g}hot HD ProfessionalProgramming Utility MUST be loaded infirst!l 0ore-] 2 |2~~~~~~~~~`88 |2}ҭ The Snaps8KB%DOS SYSB*)DUP SYSBSDEMO COMBhDEMO LSTBDEMO M65BDEMO1 COMBDEMO1 LSTBDEMO1 M65BDEMO2 COMBDEMO2 LSTB DEMO2 M65BDEMO3 COMB0DEMO3 LSTBFDEMO3 M65BUDEMO4 COMBqDEMO4 LSTBDEMO4 M65BDEMOARC ARCBDEMOBAT BATBEPPU COMB*PPU DOCBREAD ME B'.SNHD30 DOCB@USNHDLOW COM@SNHDMED COM10 ;20 ;30 .OPT NO LIST40 ;50 ;SAVE#D:RELOC>DEMO4.M6560 ;70 ;..80 ;LIST#D:RELOC>DEMO4.LST90 ;0100 ;0110 ;012=r}0 ;ASM,,#D:RELOC>DEMO4.COM0130 ;0140 ;This demo will switch to snap #4, attenpt to run D3:>UTT>UNARC on0150 ;a file named =s}D1:>DEMO.ARC, unarc it to D1:> , wait 10 seconds, and then snap back0160 ;to snapshot #1.0170 ;0180 JOHN = $06FE0190 ;0=t}200 *= $30000210 .INCLUDE #D:SNAPSHOT>SYSLIB.M650220 G.START0230 LDA #$600240 STA G.START0250 LDA J=u}OHN+10260 STA $010270 LDA JOHN0280 SEC 0290 SBC #$09 ;Point to 1st byte in snapshot's vector table. Th=v}e first byte is a flag.0300 ;And we copy it.0310 STA $000320 BCS COPY.SNAP.TABLE0330 DEC $010340 COPY.SNAP.T=w}ABLE0350 LDA $000360 LDX $010370 STA SNAP.TABLE0380 STX SNAP.TABLE+10390 C.S.T.B10400 LDY #10410 =x} LDA ($00),Y0420 STA SNAP.TABLE+20430 INY 0440 LDA ($00),Y0450 STA SNAP.TABLE+30460 C.S.T.B20470 =y}INY 0480 LDA ($00),Y0490 STA SNAP.TABLE+40500 INY 0510 LDA ($00),Y0520 STA SNAP.TABLE+50530 ;0540 =z} LDA SNAP.TABLE+20550 STA $000560 LDA SNAP.TABLE+30570 STA $010580 BNE COPY.P.BUFFER0590 JMP MAJO={}R.ERROR0600 ;0610 ;Now to copy the correct addresses,0620 ;and place them into our snapshot program buffer before copying =|}it0630 ;to snapshot's internal program buffer.0640 ;0650 ;Copy the internal address of the program & text buffer.0660 ;0=}}670 COPY.P.BUFFER0680 LDA SNAP.TABLE+40690 STA P.BUFFER+60700 LDA SNAP.TABLE+50710 STA P.BUFFER+70720 =~} LDY #00730 C.P.B.B00740 LDA P.BUFFER,Y0750 STA ($00),Y0760 INY 0770 CPY #P.BUFFER.LENGTH+10780 BN=}E C.P.B.B00790 ;0800 LDA SNAP.TABLE+40810 STA $000820 LDA SNAP.TABLE+50830 STA $010840 LDY #00850 =}COPY.T.BUFFER0860 LDA T.BUFFER,Y0870 STA ($00),Y0880 INY 0890 CPY #T.BUFFER.LENGTH+10900 BNE COPY.T.=}BUFFER0910 ;0920 LDY #800930 LDX #00940 COPY.TEXT0950 LDA TEXT,X0960 CMP #$FF0970 BEQ EXIT0980 =} STA (88),Y ; SAVMSC0990 INX 1000 INY 1010 BNE COPY.TEXT1020 EXIT1030 LDA CH1040 CMP #2551050 =} BEQ EXIT1060 LDA #2551070 STA CH1080 LDY #01090 ;1100 ;Now to set Snapshot's internal flag named PROGRAM t=}o any non-zero value. This starts executing1110 ;your snapshot program.1120 ;1130 LDA SNAP.TABLE1140 STA $001150=} LDA SNAP.TABLE+11160 STA $011170 LDA #11180 STA ($00),Y1190 JMP ($0A) ;Goto DOS.1200 TEXT1210 =} .SBYTE "** **",$FF1220 SNAP.TABLE *= *+61230 ;1240 ;These two buffers are an example of how=} to program Snapshot HD to execute a batch file.1250 ;1260 P.BUFFER1270 .BYTE "S4" ;Snap to #41280 .BYTE "W",0,3=}0 ;Wait 1/2 sec1290 .BYTE "C" ;Send $ to CP1300 MY.T.BUFFER1310 .WORD T.BUFFER1320 .BYTE "W",2,90 ;Wait 10 =}SEC1330 .BYTE "S1"1340 .BYTE "E"1350 P.BUFFER.LENGTH = *-P.BUFFER1360 T.BUFFER1370 .BYTE "D3:>UTT>UNARC D1:D=}EMOARC.ARC D1:>",$9B,-11380 ;1390 T.BUFFER.LENGTH = *-T.BUFFER1400 HERE1410 .INCLUDE #D:>SNAPSHOT>MACROS.M651420 MAJ=}OR.ERROR1430 JSR PRINTSI1440 .BYTE "}",EOL,EOL1450 .BYTE "ҭ The Snapshot HD Professional",EOL1460 .=}BYTE "Programming Utility MUST be loaded in",EOL1470 .BYTE "first!",EOL,$FF1480 JMP ($0A)1490 *= $02E21500 =} .WORD G.START Utility MUST be loaded in",EOL1470 .BYTE "first!",EOL,$FF1480 JMP ($0A)1490 *= $02E21500 < X;X;EI(X;2X;SAVE#D:RELOC>DEMO4.M65<X;FX;..PX;LIST#D:RELOC>DEMO4.LSTZX;dX;nX;xX;ASM,,#D:RELOC>A}DEMO4.COMX;FX;This demo will switch to snap #4, attenpt to run D3:>UTT>UNARC onVX;a file named D1:>DEMO.ARC, unarc it A}to D1:> , wait 10 seconds, and then snap backX;to snapshot #1.X; JOHNX;0>D:SNAPSHOT>SYSLIB.M65 A}G.STARTQ>` PG.START QJOHNP QJOHN;"PS> ;;Point to 1st byte in snapshot's vector table. The first bytA}e is a flag.,X;And we copy it.6P@ECOPY.SNAP.TABLEJ"TCOPY.SNAP.TABLE^Qh$rPSNAP.TABLE|&SNAP.TABLEA} C.S.T.B1%>Q@7PSNAP.TABLE3Q@7PSNAP.TABLE C.S.T.B23Q@7PSNAP.TABLE3A}Q@7PSNAP.TABLEX;QSNAP.TABLE&P0QSNAP.TABLE:PDHCOPY.P.BUFFERN!MAJOR.ERRORXX;b'X;NowA} to copy the correct addresses,lFX;and place them into our snapshot program buffer before copying itv+X;to snapshot's interA}nal program buffer.X; C.P.B.B0QP.BUFFER8P@73)>P.BUFFER.LENGTH  HC.A}P.B.B0X; QSNAP.TABLE*P4QSNAP.TABLE>PH%>RCOPY.T.BUFFER\QT.BUFFER8fP@7p3z)>T.BUFFER.LA}ENGTHHCOPY.T.BUFFERX;%>P$> COPY.TEXT QTEXT9R> FEXITP@X7;; SAVMSC23HCOPY.TEXTA}EXITQCHR> FEXIT$Q>.PCH8%>BX;LcX;Now to set Snapshot's internal flag named PROGRAM to any non-zeroA} value. This starts executingVX;your snapshot program.`X;jQSNAP.TABLEtP~QSNAP.TABLEPQ>P@7!A}@ :;;Goto DOS.TEXT, A** **A=SNAP.TABLE X;\X;These two buffers are an examA}ple of how to program Snapshot HD to execute a batch file.X; P.BUFFER AS4A;;Snap to #4 AWA==;;Wait 1/2 sec A} ACA;;Send $ to CPMY.T.BUFFER T.BUFFER( AWA==Z;;Wait 10 SEC2 AS1A< AEAFP.BUFFER.LENGTH P.BUFFERPA} T.BUFFERZ/ AD3:>UTT>UNARC D1:DEMOARC.ARC D1:>A==dX;nT.BUFFER.LENGTH T.BUFFERxHERE>D:>SNAPSHOT>MACROA}S.M65MAJOR.ERROR PRINTSI A}A=EOL=EOL0 Aҭ The Snapshot HD ProfessionalA=EOL1 AProgramming Utility MA}UST be loaded inA=EOL Afirst!A=EOL=!@ : G.STARTapshot HD ProfessionalA=EOL1 AProgramming Utility M@FDEMOBAT.BATVG Y ; I2AA@P)2ʦBP$LX|"'ALA $Dn"2C*T"e"1t)ID*.hĩO.~ntility MDu;THIS IS A TEST;BATCH FILE FOR;SNAPSHOT HD;D3:>UTT>ARC D1:DEMOBAT.ARC D1:DEMOBAT.BATe"1t)ID*.hĩO.~ntility MHY00L0 )G Snapshot HD Professional Programming M} Utility (C) Copyright 1990 by M} 01 Tom Hunt Hold down OPTION when loadingfor more info.`M}0` )G This program is meant to beused with Snapshot HD 3.0c. It willallow you to program Snapshot HD sothat it M}can control ac12tivities inthe various snapshots. There are 7 instructions thatthis utility will act upon. TheseinM}structions must be placed by yourprogram into the internal buffer.Valid instructions are listed below. M )GW Wait UsagM}e: Wait for a jiffy-23word length of time. Example: .BYTE 'W',0,30 This will create a pause of one-half secoM}nd.C Send string to CP Usage: Send a command or file- name for the CP to execute. Example: .BYTM}E 'C',< T.BUFFER,> T.BUFFE34R,$9B,-1,$FF This will send the contents in T.BUFFER to the CP. NOTE: For Sparta dos onlyM}.A Send string to Application Usage: Send a string to either an application or dos as though it were enM}tered in from the keybo45ard. M )G Example: .BYTE 'A',< T.BUFFER,> T.BUFFER,$9B,$FF NOTE: When using eM}ither the A or the C command, your program must place the text that will be sent to the other M} snapshot into the internal bu56ffer. You can send more than one line, each term- inated with a $9BM}. The very last line must be terminated with a $9B followed by a $FF. In the case of sending M}a string to Sparta's CP, your string67 should be term- inated by $9B,-1,$FF. M )G Example:T.BUFFM}ER .BYTE 'D1:>UNARC D2:>MYFILE.ARC D3:',$9B,$FF This will unarc the file MYFILE.ARConto drive D3:.M Monitor memory lM}ocation until equal to byte. Usage: You can us78e this instruction to watch a certain memory locationM}, until it becomes a certain value. Example: .BYTE 'M' ;Monitor the .WORD 764 ;keypress register, M} .BYTE $9B ;Wait for RETURNS Snap to another snaps89hot. Usage: Use this instruction to snap to another snM}apshot. M )G Example: .BYTE 'S2' ;Snap to snapshot ;number 2.P Poke memory location. Usage: M}Use this to set a memory location to a certain value.9: Example: .BYTE 'P' ;Poke .WORD MEMLOC ;loM}cation MEMLOC .BYTE 00 ;with a zero.E End of snapshot program. Usage: Your snapshot program must end wM}ith this instruct- ion! If it doesn't, very strang:;e results could occur. Example: .BYTM}E 'E' M )GThe actions that you want anothersnapshot to act upon are held in abuffer called P.BUFFER. Any textyou wanM}t to send another snapshotis held in a buffer called T.BUFFER.Both buffe;M )Gsetting up P.BUFFER & T.BUFFER,M} yourprogram must poke PROGRAM with anynon-zero number to start the exe-cution of the snapshot program.To calculate thM}e address of P.BUFFER,take JOHN and subtract 8 from it.Take this new word value, place it>?somewhere in zero page, and sM}toreyour snapshot program into theinternal Snapshot program buffer byusing indirect Y zero page address-ing. Example: M} LDA YOUR_P_BUFFER,Y STA (Z_P),Y INYTo calculate the address of T.BUFFER,take JOHN a?@nd subtract 6 from it.M}Take this new word value, place it M )Gsomewhere in zero page, and storeyour snapshot text into the internalsnapshot texM}t buffer by using thesame method shown above.After copying both the program andtext buffers, you ar@Ae ready totell SM}napshot HD to start executingyour snapshot program. You do thisby setting PROGRAM to a non-zerovalue.٠ԠM}ΠӛUsing the Snapshot HD ProfessionalProgramming Utility pushes MEMLO upa bit. This means thatAB if you loaM}dthe PPU in one snapshot, and switchto another snapshot that wasn'tcreated AFTER the PPU was loadedin, the application ruM}nning in the M )G2nd snapshot will get confused as tohow much memory is available for itto use.In other wordBCs, deM}lete any existingVIRTUALx.x files before using thePPU. Create them after loading itin.Also, if you reboot Snapshot HDwiM}thout the PPU, and then snap overto one of the snapshots that wasinitialized with it, the before-mentioned confusion wiCM}Dll probablyoccur with the application runningin it.Running the PPU creates an entirlydifferent environment than justruM}nning Snapshot HD by itself. Donot mix the VIRTUALx.x files created M )Gby the two different environments! )GSend sharM}ewaDEre donation's to:Tom Hunt1704 Twp. Rd. 65Jeromesville, Oh44840Call Closer To Home BBS419-368-4413300/1200/2400M}Stephen J. CardenP.O. Box 15166Augusta, Georgia 30919-1166Call Inside the 8-bit404-798-2474404-798-29461200/2400/9600/M}14.4 usrEE MEF`EEEҌҩEEE` ҍ#F )GӠԠԠΠϠ ҍM}Э#F `HHApF pF&pFqFAhhpF qF` hh F FLzF FHM}H``JFG䅳䅲 F J`l` F`%H$H`az`AZi`ɀ0`ɀ)`G GM}G G`HJJJJ Gh)  0i6 F`h:Gh;G:G;G GL1G;GH:GH`(Px@h0X HpZ }M}H ZZLH]^ZGHɛD qHZ) ` LGi@LG8 $Z ^UcU(ȱ^] ^^_`cRUTT qHM}^] ^`TXhi(^Yii_^h_i^hXi^Yi_^(U^]^eU^_i_`T XyOG^M}YyPG_^eU^_i_`}~HI BHILVHHHHHH`<HH`SM}H)Ӡ h`SH)Ӡ h`SH)Ӡ h`SH)Ӡ h`HHIIIM}IIIIIȌI FIhh`IJIIIJI JI JIJ JI JI JIJ F ɛ~M} F F`Ę~ Fй&JJpJ`JXJ JqJaJYJ!JyJ[J"JzJ\J&%JM}%J F#J F#J&J&J`JJJKJ JJJ!JJJ"JJJ`JJ JJ!JKKM}J"JKKJ `J=KHK J>KIK!J@K7KCK"JAK8KDKȢ0`JoKlK JpKmKM}!JrK"JsK` KKLK~K͍K KK~K> F Fɛ4~0:~KȌ~K~K FӬM}~K̩~ F~K𾩛~Kș~K~K~JK J!JK"J JK ٥Ԧ`I`I `I@`I`ө<`M}8ө өө`i```I`IӐL;M`I`I``MMMM M MM} M M M M MMMM8`` )G[-More-] F )G~~~~~~~~~`0@BLM}sj`8 ȭȭ ȭ ȭ ȭ ȭ ȭl $L%M}x$%XlحLLLALELGSLPLCLAWLMLL莙M}莙 gɛ L58 ȌLbLx$%hiE ɂM}XLbxXLG in3napshot($programbufferLG80lLM}!_^ZX][spr "&2350B67fuURzjx}yMAE@ecHJoh~mKPnVkW𼛾cd ? M}xԍXH) hl LbLb LbLM}bplp        ) K    v \M}+e̥̅i͠mȱm \̑ϥpZ[L̩@ͭέϩЩp` \L{ Snapshot HD Professional Programming Utility Q} (C) Copyright 1990 by Q} Tom Hunt This program is meant to beused with Snapshot HD 3.0c. It wilQ}lallow you to program Snapshot HD sothat it can control activities inthe various snapshots. There are 7 instructionsQ} thatthis utility will act upon. Theseinstructions must be placed by yourprogram into the internal buffer.Valid instructiQ}ons are listed below.W Wait Usage: Wait for a jiffy-word length of time. Example: .BYTE "W",0,30 This will cQ}reate a pause of one-half second.C Send string to CP Usage: Send a command or file- name for the CP to Q} execute. Example: .BYTE "C",< T.BUFFER,> T.BUFFER This will send the contents in T.BUFFER to the CP. NOTE: FoQ}r Sparta dos only.A Send string to Application Usage: Send a string to either an application or dos as Q}though it were entered in from the keyboard. Example: .BYTE "A",< T.BUFFER,> T.BUFFER NOTE: When using eiQ}ther the A or the C command, your program must place the text that will be sent to the other Q}snapshot into the internal buffer. You can send more than one line, each term- inated with a $9B. TheQ} very last line must be terminated with a $9B followed by a $FF. In the case of sending a strQ}ing to Sparta's CP, your string should be term- inated by $9B,-1,$FF Example:T.BUFFER .BYTE "D1:>UQ}NARC D2:>MYFILE.ARC D3:",$9B,$FF This will unarc the file MYFILE.ARConto drive D3:.M Monitor memory location until eQ}qual to byte. Usage: You can use this instruct- ion to watch a certain memor location, until it becomes aQ} certain value. Example: .BYTE "M" ;Monitor the .WORD 764 ;keypress register, .BYTE $9B ;WaitQ} for RETURNS Snap to another snapshot. Usage: Use this instruction to snap to another snapshot. Example: Q} .BYTE "S2" ;Snap to snapshot ;number 2.P Poke memory location. Usage: Use this to set a memory Q} location to a certain value. Example: .BYTE "P" ;Poke .WORD MEMLOC ;location MEMLOC .BYTE 00 ;Q}with a zero.E End of snapshot program. Usage: Your snapshot program must end with this instruct- ion! Q} If it doesn't, very strange results could occur. Example: .BYTE "E"The actions that you want anQ}othersnapshot to act upon are held in abuffer called P.BUFFER. Any textyou want to send another snapshotis held in a buffR}er called T.BUFFER.Both buffers are $80 in length. Youmust calculate the addresses ofthese two buffers, then copy yourtexR}t and program into them. You cal-culate their addresses by peekinglocation $06FE. This word value isa pointer that points R}to an addresscalled JOHN, and is used as thebasis for calculating the address ofT.BUFFER & P.BUFFER, and anotheraddress cR}alled PROGRAM.To calculate the address of PROGRAM,take JOHN and subtract 9 from it.This new word value is the addressto R}the byte called JOHN. After set-ing up P.BUFFER & T.BUFFER, yourprogram must poke PROGRAM with anynon-zero number to starR}t the exe-cution of the snapshot program.To calculate the address of P.BUFFER,take JOHN and subtract 8 from it.Take thR}is new word value, place itsomewhere in zero page, and storeyour snapshot program into theinternal Snapshot program bufferR} byusing indirect Y zero page address-ing. Example: LDA YOUR_P_BUFFER,Y STA (Z_P),Y INYTo calculate the adR}dress of T.BUFFER,take JOHN and subtract 6 from it.Take this new word value, place itsomewhere in zero page, and storeyoR }ur snapshot text into the internalsnapshot text buffer by using thesame method shown above.After copying both the prograR }m andtext buffers, you are ready totell Snapshot HD to start executingyour snapsht program. You do thisby setting PROGRAMR } to a non-zerovalue.٠ԠΠӛUsing the Snapshot HD ProfessionalProgramming Utility pushes MEMLR }O upa bit. This means that if you loadthe PPU in one snapshot, and switchto another snapshot that wasn'tcreated AFTER theR } PPU was loadedin, the application running in the2nd snapshot will get confused as tohow much memory is available for itR}to use.In other words, delete any existingVIRTUALx.x files before using thePPU. Create them after loading itin.Also, R}if you reboot Snapshot HDwithout the PPU, and then snap overto one of the snapshots that wasinitialized with it, the beforR}e-mentioned confusion will probablyoccur with the application runningin it.Running the PPU creates an entirlydifferent R}environment than justrunning Snapshot HD by itself. Donot mix the VIRTUALx.x files createdby the two different environmenR}ts!ent than justrunning Snapshot HD by itself. Donot mix the VIRTUALx.x files createdby the two different environmenP Within this arc file are the following:PPU COM 8623 9-15-90 10:01pDEMO M65 2441 9-15-90 10:01pDEMO V} LST 3779 9-15-90 10:01pDEMO COM 2519 9-15-90 10:01pPPU DOC 5133 9-15-90 10:01pDEMO1 M65 2323 9-V}15-90 10:01pDEMO1 LST 3247 9-15-90 10:01pDEMO1 COM 2310 9-15-90 10:01pDEMO2 M65 2375 9-15-90 10:01pDEMOV}2 COM 2310 9-15-90 10:01pDEMO2 LST 3434 9-15-90 10:01pDEMO3 COM 2290 9-15-90 10:01pDEMO3 M65 1788 V}9-15-90 10:01pDEMO3 LST 2656 9-15-90 10:01pDEMO4 M65 2445 9-15-90 10:01pDEMO4 LST 3517 9-15-90 10:01pDEV}MO4 COM 2325 9-15-90 10:01pSNHDMED COM 7979 9-15-90 10:01pSNHD30 DOC 4785 9-15-90 8:12pSNHDLOW COM 7979V} 9-15-90 10:01pREAD ME 3312 9-15-90 8:07pDEMOBAT BAT 89 9-15-90 10:01pDEMOARC ARC 117 9-15-90 10:01pV} If you get a CRC error on any of the .COM files when you unarced, DO NOT USE THEM! Such an error indicates that the fiV}le is corrupted, and using it could seriously scramble the data on your drives. Do not use a .COM file if the file size is diV}fferent than the size listed above. This arc file has been verified that it is free from errors such as this before being relV}eased.BRIEF FILE DESCRIPTIONS:SNHDLOW.COM is the low memory version of Snapshot 3.0c. Hold down OPTION when loading for iV}nstructions.SNHDMED.COM is the middle memory version of Snapshot 3.0c. Hold down OPTION when loading for instructions.SNHV}D30.DOC is a doc file for Snapshot HD 3.0c that you can print out.PPU.COM is the Professional Programmer's Utility for SnapV }shot HD 3.0c. The memory resident portion of this program is fully relocatable. Hold down OPTION while loading for instructioV!}ns. It was made relocatable by processing it through Keith Ledbetter's "Relocatable File Creator".PPU.DOC is the doc file fV"}or PPU.COM that you can print out. The DEMO programs were designed to be used with PPU.COM. They're source code also seV#}rves to demonstrate how to control activities in the various snapshots.DEMOBAT.BAT is used by DEMO1.COM and DEMO2.COM. DEMOV$}ARC.ARC is used by DEMO4.COM.DEMO.COM will take you on a tour to snapshot #3, snapshot #4, and finally back to snapshot #1.V%}DEMO1.COM will want to find DEMOBAT.BAT on D1:. It demonstrates how to run batch files in another snapshot.DEMO2.COM willV&} also look for DEMOBAT.BAT on D1:. It will then wait 10 seconds, and then poke 764 with a RETURN. Not very interesting in itsV'}elf, but the source code is educational.DEMO3.COM should be ran from a snapshot other than #1. It simply will snap you backV(} to snapshot #1 again.DEMO4.COM will snapshot over to snapshot #3, look for D3:>UTT>UNARC.COM, and have it unarc D1:>DEMOARV)}C.ARC. You should have DEMOBAT.BAT off of D1: when you do this, or UNARC will say something about "File exists, overwrite?"V*} The source code has been included for the DEMOs, both in .M65 and in .LST format. Hopefully the source code will prove bV+}eneficial to programmers. TTYL- TomAddenda: It has been pointed ouV,}t that the order in which you load TDLINE.COM is important. Here is the correct loading sequence for those of you that use TDV-}LINE.COM:TDLINETD OFFSNHDLOW And, leave it off. If you TD ON it will confuse the system!r those of you that use TDTc Welcome to Snapshot HD v3.0c Written By: Tom HZ/}unt and Stephen J. Carden Snapshot (C) 1990 Snapshot is an (S)harewareZ0} program. Contained herein: Disclaimer General usage In depth instructions This program will not runZ1} on 800XL's with only 64k of ram. !! Important notice !! Snapshot HD is a very simple and safe utility to use.Z2} However, if you do not follow the instructions contained within this doc file, and the instructions contained in your DOS maZ3}nual, you risk grave and irrepairable damage to the data on your hard drive. The authors of this program have made everZ4}y effort to make it as reliable as is humanly possible. But nothing is fool-proof. The authors cannot be held responsable forZ5} any damage caused by this program. It is provided as-is with no promise to it's functionality or suitability. Please dZ6}istribute this program as an ARC file. This will help insure against any corruption to the integrity of the program. If you uZ7}n-ARC this file and you receive a CRC error, DO NOT USE IT. Tell the person you got it from to get an uncorrupted version of Z8}it, or download it again.General usage:Usage:Dn:>path>snap Dn:>path>virtual0.0 Where the parm contains the path ofZ9} the output file. If no parm is used the program will default to:'D1:virtual0.0'. Snapshot will show the assembly address, thZ:}e new memtop and a run address should you wish to do a run command from SpartaDos to reinitialize Snapshot HD. More about thiZ;}s later. Also, this version of Snapshot also supports the C.S.S. Multiplexer Each of the VIRTUALx.x files use about 260Z<} double-density sectors. So plan your disk usage carefully. You will need around 2,600 double density sectors for the maximumZ=} of 10 VIRTUALx.x files. As a suggestion, when you re-partition your hard drive, create a partition especially reserved for tZ>}he storage of the VIRTUALx.x files. While this isn't necessary for the use of Snapshot HD, it makes things alot simplerZ?}. !! Important notice !! The most important thing that the operator of this program has to be mindfull of is tZ@}his- Do not leave any files open for write in a snapshot, then go to another snapshot and open another file for write. This wZA}ill hopelessly scramble your disk directory! CLOSE ANY FILES OPEN FOR WRITE BEFORE SWITCHING SNAPSHOTS!In depth instructionZB}s: Snapshot HD is provided as two files. SNHDLOW.COM is assembled at $1C20, and SNHDMED.COM is assembled at $1F00. TDLIZC}NE users and MOE users will have to use the SNHDMED version. After initialization, Snapshot HD alters absolutly no memoZD}ry locations outside of itself! Your programs should run undisturbed, and are free to use any memory address that are outsideZE} the range of the Snapshot HD program. Upon initialization locations $6F9-$6FF are set up as a way for programmers to aZF}ccess some of the internal functions of Snapshot HD. One such function is that an application program can directly change snaZG}pshots by loading A with $0-$9 (the snapshot number you want to switch to), and doing a JMP ($06FE) from your own vbi code. IZH}f you do not plan to directly access Snapshot HD's internal functions you are free to use the $6F9-$6FF area. Snapshot ZI}HD uses the 130 XE's extended ram banks. These banks are the lowest on the Rambo upgrade for the 800XL. But for larger memoryZJ} upgrades these particular banks are not necessarily the lowest of the extended ram banks. On a 192k XL you can use the /E paZK}rameter with RD.COM to create a 128k ramdisk that is compatable with Snapshot HD. There is a shareware program called PSI_RD ZL}that allows you to configure which ram banks you want to use for your ram disk. The PORTB bits that ALL versions of Snapshot ZM}use are as follows: bit: 7 6 5 4 3 2 1 0 0 0 0 0 x x 0 0 All versions of Snapshot also manipulate bit 4ZN} to map in/out the extended ram banks, bit 0 to turn off/on the OS rom, and bit 1 to turn off/on the BASIC rom. AnotherZO} item of interest is theaddress reported upon loading- 're-init VBI'. Some applications will knock out Snapshot HD, making yZP}our hot-keys of no effect. If you wrote this address down, you could then run this address to get Snapshot HD reactivated agaZQ}in.Send shareware donations to: Tom Hunt 1704 Twp. Rd. 65 Jeromesville, Oh 44840 ZR} Call Closer To Home BBS 419-368-4413 300/1200/2400 Stephen J. Carden P.O. BZS}ox 15166 Augusta, Georgia 30919-1166 Call Inside the 8-bit 404-798-2474 404-798-2946ZT} 1200/2400/9600/14.4 usr 30919-1166 Call Inside the 8-bit 404-798-2474 404-798-2946X# LD1:>VIRTUAL1.0𼛾|+lح  ^V} l,l$l}L|}lL}lݽl}yz{y!zi0k=|xԍ#$&@'y^W}Ӎ") Ӡ@$''ɀ) өԍ/gjh@k) ӹ@hkkɀ&'^X}(") өX vBJK=DE V~@ )  "ө~  v{i0k=^Y}BJK=DE V {yLp{y) ө~@ )  " ө~  vxԭ) ө^Z}@@#i@@̭) ө@@؍ ^[}XX  ɀ{yz"ӭ!|XlL x$%|X`^\} B V` `BD@E~HI V` 7} ^]}Ġ㠠  !é ʮ^^} S2 # 7 Using some dos other than SpartaDosL'9` 7 ^_}? ɛL !"!L&!Ȣ R$=ɛL! $ 7 [RETURN] to run Snapshot HD,any other key to^`} exit. =$ɛ` 7 BD#E JK VLt# 3##I0#I! 7 ^a}堣x ##1"#9L" 7 򠠠 ^b} l ` 7 䠠 ^c}L'##9` 7 L'9` BJK V#` ^d}B V` BD#EJK V0`H L#h 7 # #L'9`M:0 B V`###^e}Ҍҩ###`HHA;$ ;$&$$;$<$Ahh;$ <$` I$^f}`%H$H`az`AZi` 7[-More-] =$ 7~~~~~~~~~`L$R$` $`R 7 Ġ^g}㠠 $%ʮ ^h} h$ 7 Snapshot (C) 1990 Snapshot is a (S)hareware program.This program WILL NOT run on an 800XL that h^i}as only 64k of ram.Contained herein: Disclaimer G%&eneral usage In depth instructions h$ 7 ^j} Snapshot HD is a very simple andsafe utility to use. However, if youdo not follow the instruction^k}s con-tained within this doc file, and theinstructions contained i&'n your DOSmanual, you risk and da^l}mage to the data on your hard drive. The authors of this program havemade every effort to make it asreliable as is hu^m}manly possible. Butnothing is fool-proof. The authorscannot be held resp'(onsable for anydamage caused by this program. ^n}It isprovided as-is with no promise to it'sfunctionality or suitability. Please distribute this program asan ARC fil^o}e. This will help insureagainst any corruption to the integrety h$ 7of the p()rogram. If you un-ARC this fileand you r^p}ecieve a CRC error, . Tell the person you got it from toget an uncorrupted version of it, ordownload it again.^q}General usage:Usage:Dn:>path>snap Dn:>path>virtual0.0Where the parm contains th)*e path ofthe output file. If no pa^r}rm is usedthe program will default to:'D1:virtual0.0'.Snapshot will show the assemblyaddress, the new memtop and a runad^s}dress should you wish to do a runcommand from SpartaDos.Also, this version of Snapshot als*+osupports the C.S.S. Multipl^t}exer. h$ 7 Each of the VIRTUALx.x files useabout 260 double-density sectors. Soplan your disk usage carefully. You^u}will need around 2,600 double densitysectors for the maximum of 10VIRTUALx.x files. As a sugges+,tion, whenyou re-parti^v}tion your hard drive,create a partition especially reservedfor the storage of the VIRTUALx.xfiles. While this isn't ^w}necessary for theuse of Snapshot HD, it makes thingsalot simpler. ,- The most import^x}ant thing that theoperator of this program has to bemindfull of is this- Do not leave anyfiles open for write in a snapsho^y}t,then go to another snapshot and open h$ 7another file for write. This willhopelessly scramble your dis-.kdirectory^z}! CLOSE ANY FILE OPEN FORWRITE BEFORE SWITCHING SNAPSHOTS!In depth instructions: Snapshot HD is provided as twofil^{}es. SNHDLOW.COM is assembled at$1C20, and SNHDMED.COM is assembled at$1F00. TDLINE users and MOE users willhave t./o use^|} the SNHDMED version. After initialization, Snapshot HDalters absolutly no memory locationsoutside of itself! Your pr^}}ograms shouldrun undisturbed, and are free to useany memory address that are outside therange of the Snapshot HD progra/^~}0m. Upon initialization locations h$ 7$6F9-$6FF are set up as a way forprogrammers to access some of theinternal f^}unctions of Snapshot HD. Onesuch function is that an applicationprogram can directly change snapshotsby loading A with $0-^}$9 01and doing a JMP($06FE) from your own vbi code. If you do not plan to directly accessSnapshot HD's internal function^}syou are free to use the $6F9-$6FF area. Snapshot HD uses the 130 XE's ext-ended ram banks. These banks are thelowes^}t on a Ra12mbo upgrade on an XL.But for larger memory upgrades theseparticular banks are not necessarilythe lowest of th^}e extended ram banks.On a 192k XL you can use the /E par-ameter with RD.COM to create a 128kramdisk that is compatable wit^}h Snap-shot HD23. There is a shareware programcalled PSI_RD that allows you to con- h$ 7figure which ram banks you wa^}nt to usefor your ram disk. The PORTB bits thatALL versions of Snapshot use are asfollows: bit: 7 6 5 4 3 2 1 0 ^} 0 0 0 0 x x 0 340 All versions of Snapshot also man-ipulate bit 4 to map in/out the extend-ed ram banks, bit^} 0 to turn off/on theOS rom, and bit 1 to turn off/on theBASIC rom. Another item of interest is theaddress reported^} upon loading-'re-init VBI45'. Some applications willknock out Snapshot HD, making yourhot-keys of no effect. If you wro^}tethis address down, you could then run h$ 7this address to get Snapshot HDreactivated again.Send shareware donation'^}s to: Tom Hunt 56 1704 Twp. Rd. 65 Jeromesville, Oh 44840 Call Closer To ^}Home BBS 419-368-4413 300/1200/2400 Stephen J. Carden P.O. Box 15166 Augus^}ta, Georgia 30919-1166 Call I67nside the 8-bit 404-798-2474 404-798-2946 1200/2400/^}9600/14.4 usr h$$R`78 7[-More-] =$ 7~~~~~~~~~`HJJJJ K7h)  0i6j7i 7j7 k7<7=7`?7 ?7j7<7`^}?7j7=7`h7h777 7L77H7H`(Px@h0X HpZ }8 ZZL^}9]^ZɛD 8Z) ` L$889i@L$88 $Z ^UcU(ȱ^] ^^_`cRUTT 8^] ^`TX^}hi(^Yii_^h_i^hXi^Yi_^(U^]^eU^_i_`T Xy7^Yy7_^eU^_i_^}`}~ BHILV=9&9.`k`'9": 9kȭ#=$%x$%X 7 ^} ߤ @7 @7 7 ߤ @7 @7 7 ^}ߤ @7N @7 7 7 #:: 7Hold down OPTION when loadingfor^} more information. L MK  &'(` `SNAPTION when loadingfor\hL"D1:>VIRTUAL1.0𼛾\+lح  b} L,L$L]L"\]LL]LݽL]YZ[YZi0K\xԍ   @ Yb}Ӎ)  Ӡ@   ɀ) өԍ/G J H @K ) ӹ@H K K ɀb}) өX V"BJKDE V^@_ a")  a"ө^_ a" V"[i0Kb}BJK !DE V [YLP![Y) ө^@_ i")  i" ө^_ i" V"xԭ) өb}s!v!w!@t!@w!w!i@t!t!w!w!@̭) ө!!@!!@!!!؍b}!X!X!!"!!ɀ[YZӭ\XlL x`$%\X`b} B V` m"`BD@E^H_I V` j:} b}Ġ㠠 "#é ʮb} S2 & j: Using some dos other than SpartaDosL<` j: b}? ɛL#$#L$Ȣ 2'ɛL~$ e' j: [RETURN] to run Snapshot HD,any other key tob} exit. 'ɛ` j: BD&E JK VLT& &&I0&I$ j: b}堣x &&1$%9Li% j: 򠠠 b} l ` j: 䠠 b}L%&<` j: L<` BJK V&` b}B V` BD&EJK V0`H ,&h j: & &L<`M:0 B V`&&&b}Ҍҩ&&&`HHA' '&&'''Ahh' '` )'b}`%H$H`az`AZi` j:[-More-] ' j:~~~~~~~~~`Li'Rh'`e'`R j: Ġb}㠠 '(ʮ b} H' j: Snapshot (C) 1990 Snapshot is a (S)hareware program.This program WILL NOT run on an 800XL that hb}as only 64k of ram.Contained herein: Disclaimer G()eneral usage In depth instructions H' j: b} Snapshot HD is a very simple andsafe utility to use. However, if youdo not follow the instructionb}s con-tained within this doc file, and theinstructions contained i)*n your DOSmanual, you risk and dab}mage to the data on your hard drive. The authors of this program havemade every effort to make it asreliable as is hub}manly possible. Butnothing is fool-proof. The authorscannot be held resp*+onsable for anydamage caused by this program. b}It isprovided as-is with no promise to it'sfunctionality or suitability. Please distribute this program asan ARC filb}e. This will help insureagainst any corruption to the integrety H' j:of the p+,rogram. If you un-ARC this fileand you rb}ecieve a CRC error, . Tell the person you got it from toget an uncorrupted version of it, ordownload it again.b}General usage:Usage:Dn:>path>snap Dn:>path>virtual0.0Where the parm contains th,-e path ofthe output file. If no pab}rm is usedthe program will default to:'D1:virtual0.0'.Snapshot will show the assemblyaddress, the new memtop and a runadb}dress should you wish to do a runcommand from SpartaDos.Also, this version of Snapshot als-.osupports the C.S.S. Multiplb}exer. H' j: Each of the VIRTUALx.x files useabout 260 double-density sectors. Soplan your disk usage carefully. Youb}will need around 2,600 double densitysectors for the maximum of 10VIRTUALx.x files. As a sugges./tion, whenyou re-partib}tion your hard drive,create a partition especially reservedfor the storage of the VIRTUALx.xfiles. While this isn't b}necessary for theuse of Snapshot HD, it makes thingsalot simpler. /0 The most importb}ant thing that theoperator of this program has to bemindfull of is this- Do not leave anyfiles open for write in a snapshob}t,then go to another snapshot and open H' j:another file for write. This willhopelessly scramble your dis01kdirectoryb}! CLOSE ANY FILE OPEN FORWRITE BEFORE SWITCHING SNAPSHOTS!In depth instructions: Snapshot HD is provided as twofilb}es. SNHDLOW.COM is assembled at$1C20, and SNHDMED.COM is assembled at$1F00. TDLINE users and MOE users willhave t12o useb} the SNHDMED version. After initialization, Snapshot HDalters absolutly no memory locationsoutside of itself! Your prb}ograms shouldrun undisturbed, and are free to useany memory address that are outside therange of the Snapshot HD progra2b}3m. Upon initialization locations H' j:$6F9-$6FF are set up as a way forprogrammers to access some of theinternal fb}unctions of Snapshot HD. Onesuch function is that an applicationprogram can directly change snapshotsby loading A with $0-b}$9 34and doing a JMP($06FE) from your own vbi code. If you do not plan to directly accessSnapshot HD's internal functionb}syou are free to use the $6F9-$6FF area. Snapshot HD uses the 130 XE's ext-ended ram banks. These banks are thelowesb}t on a Ra45mbo upgrade on an XL.But for larger memory upgrades theseparticular banks are not necessarilythe lowest of thb}e extended ram banks.On a 192k XL you can use the /E par-ameter with RD.COM to create a 128kramdisk that is compatable witb}h Snap-shot HD56. There is a shareware programcalled PSI_RD that allows you to con- H' j:figure which ram banks you wab}nt to usefor your ram disk. The PORTB bits thatALL versions of Snapshot use are asfollows: bit: 7 6 5 4 3 2 1 0 b} 0 0 0 0 x x 0 670 All versions of Snapshot also man-ipulate bit 4 to map in/out the extend-ed ram banks, bitb} 0 to turn off/on theOS rom, and bit 1 to turn off/on theBASIC rom. Another item of interest is theaddress reportedb} upon loading-'re-init VBI78'. Some applications willknock out Snapshot HD, making yourhot-keys of no effect. If you wrob}tethis address down, you could then run H' j:this address to get Snapshot HDreactivated again.Send shareware donation'b}s to: Tom Hunt 89 1704 Twp. Rd. 65 Jeromesville, Oh 44840 Call Closer To b}Home BBS 419-368-4413 300/1200/2400 Stephen J. Carden P.O. Box 15166 Augusb}ta, Georgia 30919-1166 Call I99nside the 8-bit 404-798-2474 404-798-2946 1200/2400/b}9600/14.4 usr H'h'R`9: j:[-More-] ' j:~~~~~~~~~`HJJJJ +:h)  0i6J:i :J: K:::`: :J::`b}:J::`h{:h|:{:|: :Lr:|:H{:H`(Px@h0X HpZ }; ZZLb};]^ZɛD ;Z) ` L;:;i@L;8 $Z ^UcU(ȱ^] ^^_`cRUTT ;^] ^`TXb}hi(^Yii_^h_i^hXi^Yi_^(U^]^eU^_i_`T Xy:^Yy:_^eU^_i_b}`}~ BHILV;<.`K`<= ;Kȭ&$%`x$%X j: b} ߤ : : j: ߤ : : j: b}ߤ" :. : j: j: == j:Hold down OPTION when loadingforb} more information. ," -"+ " ``"SNAPTION when loadingfor`h+